package com.infrastructure.utils;

import android.text.TextUtils;

/**
 * Created by zyt on 16/6/13 21:04 .
 * Email : syy19930112@aliyun.com
 * Description:
 * 与业务无关的公共工具类
 */
public final class Utils {

    /**
     * 类型安全转换函数.
     *
     * @param value        需要转换的值
     * @param defaultValue 默认值
     * @return
     */
    public final static int convertToInt(Object value, int defaultValue) {
        if (value == null || "".equals(value.toString().trim())) {
            return defaultValue;
        }
        try {
            return Integer.valueOf(value.toString());
        } catch (Exception e) {
            try {
                return Double.valueOf(value.toString()).intValue();
            } catch (Exception e1) {
                return defaultValue;
            }
        }
    }

    /**
     * 类型安全转换函数.将Object类型的value转换为long类型
     *
     * @param value        需要转换的值
     * @param defaultValue 默认值
     * @return
     */
    public final static long convertToLong(Object value, long defaultValue) {
        return 0L;
    }

    /**
     * 类型安全转换函数.将Object类型的value转换为double类型
     *
     * @param value        需要转换的值
     * @param defaultValue 默认值
     * @return
     */
    public final static double convertToDouble(Object value, double defaultValue) {
        return 0;
    }

    /**
     * 类型安全转换函数.将Object类型的value转换为String类型
     *
     * @param value        需要转换的值
     * @param defaultValue 默认值
     * @return
     */
    public final static String convertToString(Object value, String defaultValue) {
        return null;
    }


    /**
     * 安全裁剪字符串.
     *
     * @param text       字符串文本
     * @param beginIndex 开始下标(包含)
     * @param endIndex   结束下标(不包含)
     * @return 返回指定的字符串.如果text为空 返回 空字符串;如果beginIndex 为负，或 endIndex 大于此 String 对象的长度，或 beginIndex 大于 endIndex,返回未经裁剪的字符串
     */
    public final static String subString(String text, int beginIndex, int endIndex) {
        if (TextUtils.isEmpty(text))
            return "";
        if (beginIndex < 0 || endIndex >= text.length() || beginIndex >= endIndex)
            return text;
        return text.substring(beginIndex, endIndex);
    }
}
